// check if Amazon data is in the cache
// if it is, return it
// if not, return false
function cached($type, $parameters)
{
  if($type == 'browse')
    $filename = CACHE.'/browse.'.$parameters['browsenode'].'.
                '.$parameters['page'].'.'.$parameters['mode'].'.dat';
  if($type == 'search')
    $filename = CACHE.'/search.'.$parameters['search'].'.
                '.$parameters['page'].'.'.$parameters['mode'].'.dat';
  if($type == 'asin')
    $filename = CACHE.'/asin.'.$parameters['asin'].'
                .'.$parameters['mode'].'.dat';
  
  // is cached data missing or > 1 hour old?
  if(!file_exists($filename) ||
      ((mktime() - filemtime($filename)) > 60*60))
  {
    return false;
  }
  $data = file($filename);
  $data = join($data, '');
  return unserialize($data);
}

// add Amazon data to the cache
function cache($type, $parameters, $data)
{
  if($type == 'browse')
    $filename = CACHE.'/browse.'.$parameters['browsenode'].'.'
                .$parameters['page'].'.'.$parameters['mode'].'.dat';
  if($type == 'search')
    $filename = CACHE.'/search.'.$parameters['search'].'.'
                .$parameters['page'].'.'.$parameters['mode'].'.dat';
  if($type == 'asin')
    $filename = CACHE.'/asin.'.$parameters['asin'].'.'
 .$parameters['mode'].'.dat';
  
  $data = serialize($data);
  
  $fp = fopen($filename, 'wb');
  if(!$fp||(fwrite($fp, $data)==-1) )
  {
    echo  ('<p>Error, could not store cache file</p>');
  }
  fclose($fp);
}